package com.vero.appointment.util;

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class EmailSender {

    // QQ 邮箱 SMTP 服务器地址
    private static final String SMTP_HOST = "smtp.qq.com";
    private static final String SMTP_PORT = "465"; // SSL 端口

    // 发送者邮箱和授权码
    private static final String FROM_EMAIL = "1819016069@qq.com"; // 你的 QQ 邮箱
    private static final String AUTH_CODE = "cihsnfpqufdobidc"; // QQ 邮箱 SMTP 授权码

    /**
     * 发送邮件
     *
     * @param toEmail 收件人邮箱
     * @param subject 邮件标题
     * @param content 邮件内容
     * @return 发送成功返回 true，否则返回 false
     */
    /*
    1. 接种提醒邮件
主题：📅 别忘了您的疫苗接种！预约即将到期

尊敬的[用户姓名]，

您的疫苗接种时间即将到来，请确保按时前往接种，以保护您的健康！

📌 预约信息：

疫苗名称： [疫苗名称]
接种日期： [日期]
接种地点： [地址]
请提前安排好时间，携带有效身份证件前往。如有任何问题，请随时联系我们。

健康至上，守护您的安全！

📞 [联系方式] | 📧 [邮箱]

2. 预约确认邮件
主题：✅ 您的疫苗接种预约已确认

尊敬的[用户姓名]，
感谢您的预约！您的疫苗接种已成功安排，请在预约时间内前往接种。
请携带身份证件，并确保准时到达。
期待您的到来，祝您健康！

📞 [联系方式] | 📧 [邮箱]

3. 取消提醒邮件
主题：⚠️ 您的疫苗接种预约已取消

尊敬的[用户姓名]，
您已成功取消疫苗接种预约。如果是误操作，您可以重新预约，以确保按时接种疫苗。
如果您有任何疑问，请随时联系我们。
感谢您的关注，愿您健康平安！

📞 [联系方式] | 📧 [邮箱]
    * */
    public static boolean sendEmail(String toEmail, String subject, String content) {
        // 配置邮件服务器属性
        Properties properties = new Properties();
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.ssl.enable", "true");
        properties.put("mail.smtp.host", SMTP_HOST);
        properties.put("mail.smtp.port", SMTP_PORT);

        // 创建 Session
        Session session = Session.getInstance(properties, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(FROM_EMAIL, AUTH_CODE);
            }
        });

        try {
            // 创建邮件对象
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(FROM_EMAIL));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
            message.setSubject(subject);
            message.setText(content);

            // 发送邮件
            Transport.send(message);
            System.out.println("邮件发送成功！");
            return true;
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        }
    }

    // 测试方法
    public static void main(String[] args) {
        String to = "1819016069@qq.com"; // 收件人邮箱
        String subject = "测试邮件"; // 邮件标题
        String content = "你好，这是一封 Java 发送的测试邮件！"; // 邮件正文

        boolean result = sendEmail(to, subject, content);
        System.out.println("邮件发送结果：" + (result ? "成功" : "失败"));
    }
}
